package com.ict.web.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ict.web.domain.ExpertInformationSheet;
import com.ict.web.domain.OrganizationManagement;
import com.ict.web.dto.ExpertInformationSheetDto;
import com.ict.web.dto.InsertExpertInformationSheetDto;
import com.ict.web.dto.QueryExpertInformationSheetDto;
import com.ict.web.dto.UpdateExpertInformationSheetDto;
import com.ict.web.vo.ExpertInformationSheetDetailVo;
import com.ict.web.vo.ExpertInformationSheetListVo;
import com.ict.web.vo.ExtractRuleBeginVo;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * 专家库信息Service接口
 *
 * @author liujie
 * @date 2022-02-23
 */
@Mapper
public interface IExpertInformationSheetService extends IService<ExpertInformationSheet>
{
    /**
     * 查询专家库信息
     * @return 专家库信息
     */
    public ExpertInformationSheetDetailVo getInfoByUserId();
    /**
     * 查询专家库信息
     *
     * @param expertId 专家库信息主键
     * @return 专家库信息
     */
    public ExpertInformationSheetDetailVo selectExpertInformationSheetByExpertId(Long expertId);

    /**
     * 查询专家库信息列表
     *
     * @param expertInformationSheet 专家库信息
     * @return 专家库信息集合
     */
    public List<ExpertInformationSheetDetailVo> selectExpertInformationSheetList(ExpertInformationSheet expertInformationSheet,Long ormId,List<Long> expertIds);

    /**
     * 新增专家库信息
     *
     * @param dto 专家库信息
     * @return 结果
     */
    public String insertExpertInformationSheet(InsertExpertInformationSheetDto dto) throws Exception;

    /**
     * 修改专家库信息
     *
     * @param dto 专家库信息
     * @return 结果
     */
    public int updateExpertInformationSheet(UpdateExpertInformationSheetDto dto);


    /**
     * 删除专家库信息信息
     *
     * @param expertId 专家库信息主键
     * @return 结果
     */
    public int deleteExpertInformationSheetByExpertId(Long expertId);


    /**
     * 随机查询一条专家信息
     *
     * @return 结果
     */
    public List<Long> selectRandomOne(String peopleNumber,Long ormId,List<Long> expertIds,List<Long> collectExtractId);
    /**
     * 根据id批量查询
     *
     * @return 结果
     */
    List<ExtractRuleBeginVo> selectListById(List<Long> list);

    /**
     * 列表查询
     * @param queryDto
     * @return
     */
    List<ExpertInformationSheetListVo> selectExpertInfoSheetList(QueryExpertInformationSheetDto queryDto);
    /**
     * 专家抽取-条件查询
     * @param dto
     * @param collectExtractId
     * @return
     */
    List<Long> conditionSelect(ExpertInformationSheetDto dto,List<Long> collectExtractId);

}
